package com.googlecode.cryptogwt.emul.javax.crypto;

import com.googlecode.cryptogwt.emul.java.security.InvalidAlgorithmParameterException;
import com.googlecode.cryptogwt.emul.java.security.InvalidKeyException;
import com.googlecode.cryptogwt.emul.java.security.Key;
import com.googlecode.cryptogwt.emul.java.security.spec.AlgorithmParameterSpec;

public abstract class MacSpi {
    protected abstract int engineGetMacLength();
    protected abstract void engineInit(Key key, AlgorithmParameterSpec params)
         throws InvalidKeyException, InvalidAlgorithmParameterException;
    protected abstract void engineUpdate(byte input);
    protected abstract void engineUpdate(byte[] input, int offset, int len);
    protected abstract byte[] engineDoFinal();
    protected abstract void engineReset();
}
